package thread;

/**
 * 线程的创建
 * 方式1:继承Thread并重写run方法
 */
public class ThreadDemo1 {
    public static void main(String[] args) {
        Thread t1 = new MyThread1();
        Thread t2 = new MyThread2();
        //注意:启动线程要调用start而不是直接调用run方法!
        t1.start();
        t2.start();
    }
}

/**
 * 第一种创建线程方式的优点在于结构简单
 * 缺点:
 * 1:存在继承冲突问题
 *   java是单继承的，实际开发中如果我们继承了某个类为了复用方法，而于此同时又
 *   希望当前类是一个线程，则出现了继承冲突问题。
 * 2:当我们继承Thread并重写run方法来定义该线程要执行的任务，这会导致线程与其
 *   执行的任务存在了必然的耦合关系，不利于线程的重用。
 */
class MyThread1 extends Thread{
    public void run(){
        for(int i=0;i<1000;i++){
            System.out.println("你是谁啊?");
        }
    }
}
class MyThread2 extends Thread{
    public void run(){
        for(int i=0;i<1000;i++){
            System.out.println("开门!查水表的!");
        }
    }
}